package spestructuremvcplugin.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.ISelectionService;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;

/**
 * Our sample handler extends AbstractHandler, an IHandler base class.
 * @see org.eclipse.core.commands.IHandler
 * @see org.eclipse.core.commands.AbstractHandler
 */
public class SampleHandler extends AbstractHandler {
	/**
	 * The constructor.
	 */
	public SampleHandler() {
	}

	/**
	 * the command has been executed, so extract extract the needed information
	 * from the application context.
	 */
	public Object execute(ExecutionEvent event) throws ExecutionException {
		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
		
		
		
		MessageDialog.openInformation(window.getShell(),"SPEstructureMVC-plugin","Hello, Eclipse world");
		// set selection service
		ISelectionService service = window.getSelectionService();
		// set structured selection
		IStructuredSelection structured = (IStructuredSelection) service.getSelection();
	 
		System.out.println(structured.getFirstElement());
	
	
		StringBuffer buffer = new StringBuffer();
		IExtensionRegistry reg = Platform.getExtensionRegistry();
		IConfigurationElement[] extensions = reg
				.getConfigurationElementsFor("com.example.pizza");
		for (int i = 0; i < extensions.length; i++) {
			IConfigurationElement element = extensions[i];
			buffer.append(element.getAttribute("topping"));
			buffer.append(" (");
			String cost = "unknown";
			if (element.getAttribute("cost") != null) {
				cost = element.getAttribute("cost");
			} 
			buffer.append(cost);
			buffer.append("\n");
		}
		MessageDialog.openInformation(window.getShell(),
					"Installed pizza toppings", buffer.toString());
		
		return null;
	}
}
